/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejbean;

import entities.Rol;
import entities.Usuario;
import java.util.List;
import javax.ejb.Local;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author Alex
 */
@Stateless(mappedName = "RolBean")
@Local(RolBeanLocal.class)
public class RolBean implements RolBeanLocal {

    @PersistenceContext(unitName = "com.proyectoempresa_ProyectoEmpresa-ejb_ejb_1.0-SNAPSHOTPU")
    private EntityManager em;
    
    @Override
        public List<Rol> findAll() {
        Query query = em.createNamedQuery("Rol.findAll");
        
        return (List<Rol>) query.getResultList();
    }

    @Override
        public Rol findByRolId(Integer rolId) {
        Rol res = null;
        Query query = em.createNamedQuery("Rol.findByRolId").
                setParameter("rolId", rolId);
        
        try {
            res = (Rol) query.getSingleResult();
        } catch(NoResultException e) {
        }
        
        return res;
    }

       public List<Rol> findByRolAdmin() {
        Query query = em.createNamedQuery("Rol.findByRolAdmin");
        
        return (List<Rol>) query.getResultList();
    }

    @Override
    public Rol findByDescripcion(String nombre) {
        Rol res = null;
        Query query = em.createNamedQuery("Rol.findByDescripcion").
                setParameter("descripcion", nombre);
        
        try {
            res = (Rol) query.getSingleResult();
        } catch(NoResultException e) {
        }
        
        return res;
    }
    
    @Override
    public Rol insert(Rol rol) {
        return update(rol);
    }

    @Override
    public Rol update(Rol rol) {
        return em.merge(rol);
    }

}
